home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dr. Windows 3
/
dr win3.zip
/
dr win3
/
WINPROGS
/
WINSRC20.ZIP
/
CMDFILES.C
< prev
next >
Wrap
C/C++ Source or Header
|
1990-10-16
|
41KB
|
1,300 lines
/*
Command-line / Command-File Parser Routines
This module is linked as an overlay, use ENTER_OVLY and EXIT_OVLY.
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <float.h>
#include <ctype.h>
#include "fractint.h"
#ifdef __TURBOC__
#include <dir.h>
#endif
/* routines in this module */
void cmdfiles_overlay(void);
int cmdfiles(int argc, char *argv[]);
void set_3d_defaults(void);
int readconfig(void);
static void cmdfile(FILE *);
static int cmdarg(char *);
static void argerror(char *);
static void makeconfig(void);
/* variables defined by the command line/files processor */
char temp1[256]; /* temporary strings */
char ifsfilename[80]; /* IFS code file */
char readname[80]; /* name of fractal input file */
int potflag=0; /* continuous potential enabled? */
int pot16bit; /* store 16 bit continuous potential values */
char savename[80]; /* save files using this name */
char ifs3dfilename[80]; /* IFS 3D code file */
int gif87a_flag; /* 1 if GIF87a format, 0 otherwise */
int askvideo; /* flag for video prompting */
char floatflag;
int biomorph; /* flag for biomorph */
int forcesymmetry; /* force symmetry */
int showfile; /* zero if file display pending */
int rflag, rseed; /* Random number seeding flag and value */
int decomp[2]; /* Decomposition coloring */
int distest;
int warn; /* 0 if savename warnings off, 1 if on */
int soundflag; /* 0 if sound is off, 1 if on */
int basehertz; /* sound=x/y/x hertz value */
int debugflag; /* internal use only - you didn't see this */
int timerflag; /* you didn't see this, either */
int cyclelimit; /* color-rotator upper limit */
int inside; /* inside color: 1=blue */
int outside; /* outside color */
int finattract; /* finite attractor logic */
int display3d; /* 3D display flag: 0 = OFF */
int overlay3d; /* 3D overlay flag: 0 = OFF */
int init3d[20]; /* '3d=nn/nn/nn/...' values */
int initbatch; /* 1 if batch run (no kbd) */
unsigned initsavetime; /* autosave minutes */
double initorbit[2]; /* initial orbitvalue */
char useinitorbit; /* flag for initorbit */
int initmode; /* initial video mode */
int initincr; /* initial maxiter incrmnt */
int initcyclelimit; /* initial cycle limit */
unsigned char usemag; /* use center-mag corners */
int bailout; /* user input bailout value */
double inversion[3]; /* radius, xcenter, ycenter */
extern int invert;
extern int fractype; /* fractal type */
extern double param[4]; /* initial parameters */
extern double xxmin,xxmax; /* initial corner values */
extern double yymin,yymax; /* initial corner values */
extern double xx3rd,yy3rd; /* initial corner values */
extern char usr_stdcalcmode; /* '1', '2', 'g', 'b' */
extern int maxit; /* max iterations */
extern int usr_periodicitycheck; /* periodicity checking 1=on,0=off */
extern char usr_floatflag; /* flag for float calcs */
extern int usr_distest; /* nonzero if distance estimator option */
extern char color_lakes; /* finite attractor flag */
extern int haze;
extern int RANDOMIZE;
extern int Ambient;
extern int full_color;
extern char light_name[];
extern char back_color[];
extern double potparam[]; /* potential parameters */
extern int Printer_Resolution, LPTNumber,
Printer_Type, Printer_Titleblock,
Printer_ColorXlat, Printer_SetScreen,
Printer_SFrequency, Printer_SAngle,
Printer_SStyle; /* for printer functions */
int transparent[2]; /* transparency min/max values */
int LogFlag; /* Logarithmic palette flag: 0 = no */
char FormFileName[80]; /* file to find (type=)formulas in */
char FormName[40]; /* Name of the Formula (if not null) */
extern int video_type;
extern int no_color_text;
extern unsigned char olddacbox[256][3]; /* Video-DAC saved values */
extern unsigned char dacbox[256][3]; /* Video-DAC values */
extern int viewwindow;
extern float viewreduction;
extern int viewcrop;
extern float finalaspectratio;
extern int viewxdots,viewydots;
extern char *fkeys[]; /* Function Key names for display table */
static int toolsfile; /* 1 if inside a TOOLS file, 0 otherwise */
extern char MAP_name[];
extern int mapset;
extern char loadPalette;
extern int eyeseparation; /* Occular Separation */
extern int glassestype;
extern int xadjust; /* Convergence */
extern int yadjust;
extern int xtrans, ytrans; /* X,Y shift with no perspective */
extern int red_crop_left, red_crop_right;
extern int blue_crop_left, blue_crop_right;
extern int red_bright, blue_bright;
extern char showbox; /* flag to show box and vector in preview */
extern char preview; /* 3D preview mode flag */
extern int previewfactor; /* Coarsness */
static int first_init=1; /* first time into cmdfiles? */
static int init_rseed;
static int initcorners; /* corners set flag */
void cmdfiles_overlay() { } /* for restore_active_ovly */
char LFileName[80]; /* file to find (type=)L-System's in */
char LName[40]; /* Name of L-System */
extern int active_system; /* 0=dos, 1=windows */
/*
cmdfiles(argc,argv) process the command-line arguments
it also processes the 'sstools.ini' file and any
indirect files ('fractint @myfile')
*/
int cmdfiles(argc,argv)
int argc;
char *argv[];
{
double atof(), ftemp; /* floating point stuff */
int i, j, k, l; /* temporary loop counters */
char curarg[141]; /* temporary strings */
char tempstring[101]; /* temporary strings */
FILE *initfile; /* for .INI, '@' files */
ENTER_OVLY(OVLY_CMDFILES);
gif87a_flag = 0; /* turn on GIF89a processing */
usr_periodicitycheck = 1; /* turn on periodicity */
rflag = 0; /* not a fixed srand() seed */
if (first_init)
init_rseed = (int)time(NULL);
rseed = init_rseed;
usr_floatflag = 0; /* turn off the float flag */
biomorph = -1; /* turn off biomorph flag */
askvideo = 1; /* turn on video-prompt flag */
warn = 0; /* no warnings on savename */
soundflag = -1; /* sound is on */
basehertz = 440; /* basic hertz rate */
initbatch = 0; /* not in batch mode */
initsavetime = 0; /* no auto-save */
initmode = -1; /* no initial video mode */
inside = 1; /* inside color = blue */
outside = -1; /* outside color = -1 (not used) */
finattract = 0; /* disable finite attractor logic */
maxit = 150; /* initial maxiter */
initincr = 50; /* initial iter increment */
usr_stdcalcmode = 'g'; /* initial solid-guessing */
fractype = 0; /* initial type Set flag */
initcorners = 0; /* initial flag: no corners */
usemag = 0; /* use corners, not center-mag */
bailout = 0; /* no user-entered bailout */
for (i = 0; i < 4; i++) param[i] = FLT_MAX; /* initial parameter values */
for (i = 0; i < 3; i++) potparam[i] = 0.0; /* initial potential values */
for (i = 0; i < 3; i++) inversion[i] = 0.0; /* initial invert values */
invert = 0;
decomp[0] = decomp[1] = 0;
usr_distest = 0;
initorbit[0] = initorbit[1] = 0.0; /* initial orbit values */
useinitorbit = 0;
forcesymmetry = 999; /* symmetry not forced */
viewwindow = 0; /* full screen */
viewreduction = 4.2;
viewcrop = 1;
finalaspectratio = SCREENASPECT;
viewxdots = viewydots = 0;
xx3rd = xxmin = -2.5; xxmax = 1.5; /* initial corner values */
yy3rd = yymin = -1.5; yymax = 1.5; /* initial corner values */
pot16bit = potflag = 0;
initcyclelimit=55; /* spin-DAC default speed limit */
transparent[0] = transparent[1] = 0; /* no min/max transparency */
LogFlag = 0; /* no logarithmic palette */
strcpy(ifsfilename,".\\"); /* initially current directory */
strcpy(ifs3dfilename,".\\"); /* initially current directory */
mapset = 0; /* no map= name active */
loadPalette = 0;
debugflag = 0; /* debugging flag(s) are off */
timerflag = 0; /* timer flags are off */
display3d = 0; /* 3D display is off */
overlay3d = 0; /* 3D overlay is off */